Routing bandwidth-reserved connections in information networks

ABSTRACT

This invention defines a routing method which allows a determination of best paths from link weights in situations where these weights are not additive, but the characteristic of a concatenated path is determined mainly by single &#34;bottleneck&#34; links. To be compatible, the metric must be chosen from a specific set of metrics, called bottleneck metrics in this description. The new widest-path method has some characteristics in common with the known Dijkstra method for additive weights. Implementations in communication networks are disclosed which lead to new nodes, new networks and new network protocols.

TECHNICAL FIELD

The present invention concerns the routing function in informationnetworks, e.g. switch-based computer networks. In such a network it isnecessary to determine paths from source nodes to destination nodes.This invention enhances and expands the known Dijkstra routing method tosupport additional types of service, e.g. reserved bandwidth service,which are not possible with the Dijkstra method. The invented methodwill also be called "widest-path method" throughout this description. Aspecific path metric is used, called "bottleneck metric" in the sequel,which was found to be compatible with the algebraic rules that governthe routing method. With this metric, it is possible to reflectrealistically enough at least the bandwidth characteristics of thepaths, but other characteristics may also be represented. Thewidest-path method can be used e.g. in connection-oriented networks asAsynchronous Transmission Mode (ATM) or Internet Stream Protocol VersionII (ST.II) networks, where the routing decisions are made at connectionsetup, but it is not limited thereto. It can be used to precompute pathsfrom any source to any destination and prestore all paths until arespective one is used for a connection request. Such precomputedrouting trees are advantageous in source routing methods, where thelocal source node tree is used to produce a source vector, whichdescribes the path as a sequence of nodes to be covered during packettransmission. The present invention is especially useful in link-staterouting mechanisms for networks, but it could be used in the context ofany routing problem for which the widest-path method is applicable andfor which the bottleneck metric is an appropriate representation of therespective path characteristic.

BACKGROUND OF THE INVENTION

Link-state algorithms such as Open Shortest Path First (OSPF) are incommon use for providing the routing function in computer networksimplementing a connectionless network layer. In such cases, the networkrouting algorithm builds routing tables as a background task.Information about links is maintained and updated by a topology functionreplicated in all nodes; as a result, every node owns an image of thenetwork, see e.g. EP 0 348 327 or EP 0 447 725. This image is used witha shortest-path algorithm to compute routes to all destinations. Therouting tables, produced by the routing algorithm, normally are used toforward individual packets. With the traditional metrics, optimal pathsare "shortest" paths. They are obtained by using the conventionalDijkstra method with a path "length" given by the sum of the "lengths"of the separate links contributing to the path. In such a setting, the"length" of a link is most often not its true geometrical length, butcan be a value representing any characteristic of that link. In thefollowing, "weight" will be used as the general term for such values. Itcould represent e.g. monetary costs for the use of that link, and onegoal of the routing algorithm would be to minimize the cost of thenetwork, while maintaining proper connectivity. It could also representdelays on that link, the goal would be to minimize the delays in networkdata flow. A few examples of metrics in connection with bandwidth oroccupancy characteristics can be found in EP 0 276 754 and in U.S. Pat.No. 4,905,233. In EP 0 276 754, a link weight approximately proportionalto the occupied capacity is described and used in the Dijkstra method.

A metric that reflects the allocatable capacity available on links isalso known from U.S. Pat. Nos. 5,088,032 and 5,067,127. In U.S. Pat. No.5,067,127, a congestion avoidance control method for communicationnetworks is described, which uses a link weight inversely proportionalto the available bandwidth and the path weight is the sum of the linkweights. In U.S. Pat. No. 5,088,032 a modified Ford path computationalgorithm is described. There, the weight of a link can be inverselyproportional to the available bandwidth, and the path weight isdetermined as the maximum of the weights of its links. Whereas it isstated there that other methods of finding the route with minimum metricmay also be used, it is not clear at all that any other method iscompatible with the metric proposed. A distance vector method isdescribed; the Dijkstra method is not mentioned at all. As said above,the traditional Dijkstra method uses a path weight, which is determinedas the sum of the weights of its links, and therefore it is nosubstitute for the modified Ford algorithm. Further and in contrast tothe distance vector method, the widest-path method (as the Dijkstramethod) builds a complete spanning tree of paths from a source to alldestinations using a topology database of all nodes, their directlyattached links and related link weights. This is especially useful inlink-state routing mechanisms and source routing.

In virtual circuit networks, routing is connection-oriented and therouting decision is made at connection setup. If, in addition,connections must have guaranteed bandwidth, e.g. for loss-sensitivecommunication, a virtual circuit network with bandwidth reservation isnecessary. Examples are networks of ST.II routers and ATM networks.There, all packets or cells belonging to a connection follow the samepath. In such cases, the routing algorithm applies to the routing ofconnection setup messages, this is also referred to "call routing".

It is a general object of this invention to avoid the differentdrawbacks of the prior art and to extend and modify the Dijkstra routingmethod in a way which allows a determination from the weights of thebottleneck link or links of each path, of the "best" path, which isdefined to include the "widest" bottleneck, that is the link with themost favorable (smallest or biggest) weight. It is another object toprovide a link-state routing method, especially for virtual circuitnetworks, with guaranteed bandwidth or bandwidth reservation or withother characteristics which necessitate a bottleneck metric. A furtherobject is to improve a network node by implementing in it a routingfunction enhancement comprising the widest-path method; improvements tothe topology function are proposed to include in its update method amodified dampening method and/or a bandwidth encoding method to enableconsideration of dynamically varying available bandwidths. Furtherdisclosed is a network comprising improved nodes which may be mixed withnormal nodes not supporting the devised enhancement.

SUMMARY OF THE INVENTION

The above objects are accomplished by enhancing and extending theDijkstra routing method by applying an appropriate metric to determinelink weights and path weights. An appropriate metric must reflect atleast approximately the characteristics of the paths to be taken intoaccount in the routing method and it must be compatible with thismethod. As was found, the bottleneck metrics comply with theseconstraints. They include metrics which are defined so that the weightof a path is given by the maximum of the weights of its links, and alink or path with smaller weight is the better link or path,respectively. In this case, with the widest-path method, the best pathsare still paths with minimal weight in this case, as with the Dijkstramethod. A formal description of such an example of the method inalgorithm form is given in the appendix. There, a case is selected wherethe operation of link weight summation in the Dijkstra method is alwaysreplaced by a maximum operation which has the maximum of the linkweights as its result. This definition means that the weight of aconcatenated path is now the maximum of the weights of its links insteadof the sum. It is possible to formally prove that the algebraic ruleswhich govern the method hold for both operations. The beauty of thewidest-path method is that it is easy to implement and can replace theDijkstra method, where appropriate, without complications. Clearly, thebottleneck metrics include other metrics, too. As examples, the minimum(or another extremum) of the component link weights (or their absolutevalues) can be used to determine the path weight directly or afterfurther calculation, provided that the calculation applied is anon-decreasing function. The median of component link weights or thecomponent link weight closest to a predetermined target value can beused, if these reflect the path characteristic to be described. As arule, an operation on the weights of the component links of a path isapplied to select at least one link (the "bottleneck link") of the path,and the path's weight is then determined from the weights of itsbottleneck links.

In the context of communication network routing, the metric reflects theallocatable capacity available on links and the widest-path method isused for the computation of the path with the highest allocatablecapacity. In link-state routing, network nodes share link stateinformation that reflects the available bandwidth on each of the linksof the network. This is performed by encoding the available capacitiesas link weights and using a known distribution mechanism, called"topology function", for transmission. As the available capacity variesvery dynamically, it is necessary to prevent excessive amounts of linkstate updates. This is known as "dampening" and an appropriate dampeningmethod is described. The routing function can be applied to connectionsetup requests instead of individual packets. The widest-path methodcomputes paths from any source to any destination, using the informationobtained from the topology function. The paths can be stored and used toroute connection requests as they arrive. One feature of the"widest-path" definition is that either a connection setup can be routedalong a widest path, no matter how much bandwidth it requests, or itcannot be routed at all in the network. In other words, the methodguarantees that the connection will find a path with sufficientbandwidth, assuming there exists such capacity in the network at all,and assuming the information provided by the topology function isup-to-date. This also means that one single computation can serve allpossible bandwidth requests. One benefit of the widest-path method isthat it is compatible with and allows the reuse of the well-testedrouting function code. An additional benefit is that the routes producedby the method are computed and stored in advance of connection requests,thus supporting fast connection setup. In addition, the method can beused in conjunction with a routing protocol such as OSPF to work withstandard network nodes that do not support the widest-path method. Thisway, mixed networks including enhanced and standard network nodes becomepossible. The method does not limit the number of hops. This isinsignificant in many applications, but the limitation can be changed ifnecessary.

BRIEF DESCRIPTION OF THE DRAWINGS

An embodiment of the invention is described in detail below withreference to the drawings. To show more clearly the general inventiveconcept, a specific implementation in a communication network node isassumed. Additional inventive features in this context are alsodisclosed.

FIG. 1A illustrates schematically the widest-path method according tothe invention. A typical routing problem with a bandwidth bottlenecksituation in a network domain is assumed to explain this method incontrast to the state of the art.

FIG. 1B shows in more detail a node of the domain of FIG. 1A and therelated information flow.

FIG. 2 depicts a mixed network of widest-path areas and standard areas.

FIG. 3 shows an exponential bandwidth encoding format for link-stateupdate information.

FIG. 4 illustrates call routing and the related information flow.

DETAILED DESCRIPTION OF AN EMBODIMENT ACCORDING TO THE INVENTION

A path is the concatenation of links, also called "component links" ofthe path, between network nodes. The width Cpath of a path is defined asthe minimum of the available capacity on each of the component links.The available capacity is the bandwidth, in bits per second, that can beallocated to user connections. Therefore, the capacity bottleneck linkdetermines what capacity is available on a path. A "widest path" is apath that, among all paths between one source and one destination, hasthe largest width.

FIG. 1 illustrates a widest-path example in a domain including nodes 1to 7 of an arbitrarily meshed network. Links of different availablebandwidths are shown and the respective bandwidth is depicted by thewidth of the link connecting line. As is shown, a widest path from node1 to 2 is the path 1-4-5-2, with an assumed width of say 40 Mb/s,determined by link 5-2. Whereas link 1-3 (100 Mb/s) is broader than 1-4(60 Mb/s), path 1-3-2 is narrower than 1-4-5-2. It has a width of only20 Mb/s, say, due to the bottleneck link 3-2. Weights are applied to thelinks in such a way that a link with smaller weight is wider (has moreavailable bandwidth) than a link with bigger weight. Then, the widestlink is a link with smallest weight and the narrowest link is a linkwith biggest weight. As an example, the weight Wlink of a link isdefined as

    Wlink=Cmax-Clink,

where Cmax is a constant assumed to be larger than any link capacity(say Cmax=16 Gb/s). Clink is the available capacity, or bandwidth of thelink.

Clearly, the conventional Dijkstra method would prefer path 1-3-2 ofweight D132=W13+W32=2Cmax-120 Mb/s, and also path 1-8-9-2 (150 Mb/s, 20Mb/s, 20 Mb/s) of weight D1892=3Cmax-190 Mb/s, over the true widest path1-4-5-2 of weight D1452=3Cmax-150 Mb/s (assume 50 Mb/s for link 4-5). Inthe widest-path metric, the weight of a path is defined as the maximumof the weights of its component links, that is, it is determined by itsnarrowest link. Thus,

    Wpath=Max(Wcomponent-link)=Cmax-Min(Ccomponent-link)=Cmax-Cpath

With this bottleneck-type metric, in this context also calledwidest-path metric, the widest path is again a path with smallestweight, as with the Dijkstra method, but the widest-path method preferspath 1-4-5-2 of weight W1452=Cmax-40 Mb/s over paths 1-3-2 and 1-8-9-2of weights W132=Cmax-20 Mb/s=W1892.

The reason for defining the weights as complements to Cmax is thecompatibility with the shortest path method used in network domains thatdo not use the widest-path method. As stated in Summary of theInvention, above, other link weights can be used for a bottleneckmetric, e.g. to reflect other characteristics of the links or to easecalculations or encoding of link-state information. Examples areWlink=K/Clink, see Background of the Invention, above, and theexponential encoding described below.

By nature, the widest-path method builds a tree of paths (as theDijkstra method), so the resulting graph is always loop-free. There mayexist paths, e.g. 1-4-5-6-7-5-2 that are optimal in the sense of thewidest-path metric, but contain loops. Such paths are excludedautomatically by the widest-path method. The quality of the paths can befurther improved by adding to the method the constraint that, among allwidest paths, only the ones with the least number of hops or, moreprecisely, number of link state advertisements used are retained. Thisdefines a precedence of equal-weight routes. In the example, path1-4-5-2 precedes path 1-4-7-5-2 of equal weight which is determined bybottleneck link 5-2 in both cases.

To make the method work in a link-state, connection-oriented routingenvironment, the nodes of the network need new capabilities. FIG. 1Bshows a network node according to the invention including a knowntopology function 10. A widest-path generator 12 is connected to thetopology function 10. Upon connection requests 13 from a network user,the widest path is assigned to route the connection. Further, link-stateupdate information 14 is exchanged between network nodes to keep thetopology function up to date. A bandwidth information update module 11is connected to the topology function to include bandwidth informationin the link-state update information 14 for variable available linkcapacity. Module 11 is comprising an encoder to format a bandwidthinformation to be sent out by the node, a receiver for receiving and, ifnecessary, decoding bandwidth information of other nodes, and adampening mechanism avoiding immediate updating reaction to smallbandwidth changes.

Module 11 encodes the available bandwidth Clink on a link as a 16-bitweight, see FIG. 3. This format is used for compatibility reason withexisting link-state algorithms. An exponential notation is used in orderto cover a range from 1 bit/s to Cmax=16 Gb/s. The encoding uses 8 asthe exponentiation basis, 3 bits of exponent 21 starting from the mostsignificant bit 23, and 13 bits of mantissa 22, ending with the leastsignificant bit 24. There may be several ways to encode a specificcapacity Clink. Among all encodings (exp, mant) for one capacity Clink,only the one with the smallest exponent is declared valid. This ruleallows to put away with decoding capacities before manipulating them,because the usual comparisons on "long integers" apply. Namely, if c, c'are the 16-bit encodings of link capacities C, C', then

    C<C'<=>c<c'<=>W>W'.

Changing available bandwidth of a link with immediate bandwidth updatingof all nodes, which is similar to changing its weight, can lead todisastrous scenarios, such as storms of link-state updates propagatingthrough the network during a period of very frequent connection setups.This can lead to congestion, excess transient loops and similar problemsoften encountered in situations of overcorrections. To avoid this, adampening method was defined which only invokes link-state updates for alink when a significant change appears, e.g. when an amount of itsbandwidth has been reserved which is larger than a certain dampeningthreshold. For example, five connections for a fraction of Mbits/s eachon a link of several Gbits/s occurring in a second would lead to fivetimes distributing a change of not even 0.1% of the link's capacity, andprobably to recomputation of the topology through all nodes. This isclearly unacceptable. The dampening method is based on the fraction oflink bandwidth reserved. To achieve this goal, a threshold MaxDBandwidthmust be provided that during the change of the dynamic link weightdecides whether the new link advertisement should be started or not.Because of this requirement, every link must, beside the bandwidthweight field, contain a cumulated, not flushed, change in weight calleddelta-bandwidth. Every connection setup or release changes thedelta-bandwidth and checks whether it exceeds the threshold. If it does,new topology update is propagated. One problem still remains, namely the"opaqueness" of the delta-bandwidth cost to all nodes. When thebandwidth of a link has been changed and "absorbed" by thedelta-bandwidth field, it can potentially not be advertised for a longperiod of time. A possible routing mismatch during this period of timecould happen, although this is rather unlikely, because the thresholdshould be so small that not distributing the delta should be negligiblefor routing. Nevertheless, a periodic timer for each node link isintroduced, which is started whenever delta-bandwidth is changed from 0to a value not equal to 0 and reset each time delta-bandwidth is set to0. When the timer expires, it flushes delta-bandwidth if necessary. Thedampening constant of 5% of the available link bandwidth is based on thebehavior of a typical scenario assumed with either uniform orexponential size distribution of the requests arriving at a constantrate with a maximum size of 10% of the link bandwidth.

Most of the up-to-date link-state routing protocols offer the capabilityof dividing the routing domain into subdomains. A topology informationis summarized at the boundaries of the subdomains and only the summaryis distributed. Certain constraints have nevertheless to be met toguarantee the non-ambiguity of the distributed information. The methodof widest-path areas is proposed which allows intermixing of subdomainsunderstanding widest-path and standard metrics with those onlyunderstanding standard metrics. An example of such a mixed network isdepicted in FIG. 2. Three widest-path areas 16,17,18 of differenttopologies are shown imbedded in a network with areas 19,20 of standardnodes. On boundaries 15 of two subdomains with differentcharacteristics, the unsupported metrics are simply dropped. This allowsa gradual introduction of the widest-path method in routing domains.Here, the necessary changes for a OSPF standard routing protocol aredescribed to get so called WET-OSPF, but other mixed networks arepossible. WET denotes the three option bit names W, E, and T, of whichonly W is related to the widest-path area method. E and T are notrelevant here.

In this context, network nodes are called "routers". Widest-path areasconsist only of routers supporting the widest-path method. This isdetermined by a similar mechanism as the one used to have all routers ina stub area agree about the stub property. A new option bit isintroduced, called W-bit. Routers of a widest-path area set this bitsending so-called hello-packets on area interfaces and refuse to buildadjacency to routers in the area that do not have this bit set.Interfaces of widest-path routers connecting to a standard area will nothave this bit set in the hello-packets, but only in the options field ofthe link advertisement for summary links, so that distribution ofbandwidth metrics over the border of two widest-path areas will work.Moreover, a new time constant WET-MinLSInterval is introduced, besidethe MinLSlnterval of OSPF. The MinLSInterval is used on the areainterfaces of a router, the WET-MinLSlnterval on the WET-areainterfaces. Inside the area, the router link advertisement isdistributed using WET-MinLSInterval. The method has the advantage thatthese advertisements will not be distributed into the next area, onlysummary link advertisements will. The summary link advertisements areinstalled in intervals equal to or larger than MinLSlnterval.Nevertheless, this does not influence the router link advertisement,which can be installed as fast as WET-MinLSInterval allows, because allrouters inside the area are using this interval on such interfaces.

As a result of the widest-path method, every node in the networkproduces a local routing tree. This information can be used for callrouting in a number of ways. One particularly attractive method is touse source routing, as mentioned above. An example of a call routingmethod used for setting up calls is illustrated in FIG. 4. A connectionsetup request 13 is sent from a source 25 to route a connection todestination 26. The local, pre-computed routing tree from a widest-pathgenerator 12 at the source node 1 is used to produce a source vector,describing the path as a sequence of nodes 1,4,5 to be visited.Intermediate nodes 4,5 do not use the local routing tree, but insteadconsult the routing vector carried by every packet or connection setupmessage 13. This guarantees loop free routing of the call setup, sincethe widest-path method according to the invention always builds a loopfree graph. Link-state update information 14 is exchanged between thenodes 1,4,5 as necessary.

The method presented here provides a means for computing paths. Asshould be clear from the foregoing detailed description, a routingmethod is described, which allows to determine the best path in anetwork from link weights in situations where these weights are notadditive, but the weight of a path is defined by its bottleneck link. Tobe compatible with the method, the metric must be chosen from a specificset of metrics, called bottleneck metrics in this description. The newwidest-path method has some characteristics of the well known Dijkstramethod for additive weights.

Implementations in communication networks are described, which lead tonew nodes, networks and related protocols, but the widest-path methodcan be used in many other routing problems, examples are given above. Itcan easily be seen that the widest-path method of the embodiment doesnot minimize the number of hops, only the availability of bandwidth isconsidered. The method as described is thus not directly adapted forwide area networks where bandwidth optimization is essential, but withsome modifications it might be used for these applications, too. Incontrast, it is attractive for local area networks due to itsaforementioned benefits of compatibility with the Dijkstra method and asextension of OSPF, and because of its path precomputation capability.The method can be extended in many ways, depending on the application,without departing from the general inventive concept; it is envisionedto account for path quality, path security, or passenger comfort, toname a few applications. Various call setup schemes are possible,including multiparty calls; also, numerous modifications depending onintended network environment and types of nodes can be made inaccordance with the general concept of the invention. All thesedifferent embodiments can be implemented by someone skilled in the artand thus fall within the scope of this invention.

                  APPENDIX                                                        ______________________________________                                        1. Formalism and Assumptions                                                  uses ∃ operator to check for existence                             Head(), Tail() return head or tail of a list, 0 if empty                      Head + (e,q), Tail + (e,q) adds a element e to list q only if it is not       yet                                                                                    in the list                                                          Head - (q), Tail - (q) remove head, tail of list and returns removed          value                                                                                  or 0 if list empty                                                   Insert(e,k,q) inserts element e into list q at position k                     MAX gives the maximum of its arguments                                        # gives the number of elements in a list                                      [x] is the element at place x in a array or list or set                       node 1 is the source                                                          R is number of nodes                                                          {} denotates a empty set or list                                              2. Algorithm                                                                  Node: ARRAY[1..R] OF                                                                  SET Links OF STRUCTURE Link                                                    BEGIN                                                                         INTEGER destination;                                                          INTEGER cost;                                                                 END; /* topology database */                                         Spf : SET OF INTEGER; /* set of nodes on spf tree */                          Route: ARRAY[1..R] OF                                                                 LIST Hops OF STRUCTURE Element                                                 BEGIN                                                                         INTEGER node;                                                                 INTEGER link.sub.-- ndx;                                                      END;                                                                  /* set of node and link indices on the route from source to destination      */                                                                            Cand: LIST OF INTEGER;                                                         /* indices of candidates to test next step sorted on distance */             INTEGER FUNCTION Length (rout: LIST OF STRUCTURE Element);                    /* computes length of a route given as list of links */                       BEGIN                                                                          RETURN MAX.sub.j:=1.sup.j<#rout  Node[rout.Element[j].node].Link[rout.Ele    ment[j].                                                                               link.sub.-- ndx].cost;                                               END; /* of function */                                                        INTEGER c;                                                                    INTEGER i,j,k,dst,dist;                                                       /* Topology Database already installed */                                     Route[ 1..R ]                                                                         :={};                                                                 Cand    :={};                                                                 SPF     :={};                                                                 c       :={}; /* index of the computed node, 1 is source */                   WHILE c≠0 DO                                                             FOR i:=1 TO #Node[c].Links /* number of this node's links */                   dst := Node[Node[c].Links[i].destination];                                    Head+(c, Spf);                                                                IF (.epsilon slash. × Node[dst].Links[x].destination = c) AND dst     ␣ SPF                                                                  /* checks whether a back link exists and destination not                       already computed on tree ?? */                                               dist := MAX ( Node[c].Links[i].cost, Length(Route[c]));                       IF (dist < Length(Route[dst]) OR Length(Route[dst])=0)                         Route[dst]:= Route[c];                                                        Tail+(Element(c, i), Route[dst]);                                             k:=1;                                                                         WHILE k < #Cand AND Length(Route[k]) < dist                                    k:= k+1;                                                                      END;                                                                         Insert(dst, k, Cand ); /* insert sorted on candidate list */                  END;                                                                         END;                                                                         END;                                                                         c= Head-( Cand );                                                             END;                                                                         ______________________________________                                    

We claim:
 1. For use at a node in a network having a plurality of nodesinterconnected by links, each of the links having an assigned linkweight reflecting a selected link characteristic, a method of selectinga least weight path from a source to a destination comprising the stepsof:constructing a set of loop-free paths from the source to thedestination; for each path in the set, determining the amount ofcurrently-available bandwidth on each link in the path; for each path inthe set, assigning a path weight as a function of the minimum amount ofbandwidth currently available anywhere along the path; establishing asubset of paths including each path having a path weight equal to thelowest assigned path weight; and selecting a final path from theestablished subset of paths.
 2. A method as set forth in claim 1 whereinthe step of selecting a final path includes the following additionalstep where the subset includes more than one path:selecting as the finalpath the path in the subset having the minimum number of links betweensource and destination.
 3. A path selection apparatus for a node in anetwork having a plurality of nodes interconnected by links comprising:amemory for storing the network topology, including the currentlyavailable bandwidth on each link in the network; path generation logicfor generating a set of possible paths between a source and adestination in the network; path weighting logic for assigning a pathweight to each generated path, the assigned path weight being a functionof the lowest amount of currently available bandwidth over the generatedpath; path selection logic for establishing a subset of paths includingeach path having a path weight equal to the lowest assigned path weight;and final selection logic for choosing a final path from the establishedsubset of paths.
 4. An apparatus as set forth in claim 3 wherein thefinal selection logic selects the path in the subset which has theminimum number of links between source and destination as the finalpath.